#include <gtest/gtest.h>
#include <gmock/gmock.h>
#include "test.h"
#include "painter.h"
#include "mock_turtle.h"
using ::testing::AtLeast;
using ::testing::Return;

TEST(HelpTest, TestCase1){
        EXPECT_EQ(3, test(1, 2));
}

TEST(FactorialTest, Zero) {
	EXPECT_EQ(1, test(-1, 2));
}

TEST(PainterTest, CanDrawSomething) {
	MockTurtle turtle;                          // #2
	EXPECT_CALL(turtle, PenDown())              // #3
		.Times(AtLeast(1));

	Painter painter(&turtle);                   // #4

	EXPECT_TRUE(painter.DrawCircle(0, 0, 10));

	EXPECT_CALL(turtle, GetX())
		.WillOnce(Return(10))
		.WillRepeatedly(Return(0));

	EXPECT_EQ(10, turtle.GetX());
	EXPECT_EQ(0, turtle.GetX());
}
